package com.molichuxing.services.contants;

import com.molichuxing.services.business.dto.response.OrderTradeFlowBizDto;
import com.molichuxing.services.property.OrderExclusivelStatusEnum;
import com.molichuxing.services.property.OrderTradeFlowStatusEnum;

import java.util.Arrays;
import java.util.List;

/**
 * 订单退租流转状态常量
 *
 * @author zoumingyu
 * @date 2019年9月30日
 */
public class OrderRenegeFlowConst {

    /**
     * 待还车显示流程
     */
    public static final List<OrderTradeFlowBizDto> RENEGE_ACCEPTED = Arrays.asList(
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
                    "退租申请"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "待还车"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "财务结算中"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "解除协议确认"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "收/退款"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));

    /**
     * 财务结算中显示流程
     */
    public static final List<OrderTradeFlowBizDto> RENEGE_SETTLEMENT = Arrays.asList(
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
                    "退租申请"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
                    "已还车"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "财务结算中"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "解除协议确认"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "收/退款"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));

    /**
     * 解除协议确认显示流程-提车
     */
    public static final List<OrderTradeFlowBizDto> RENEGE_REFUND_ONE = Arrays.asList(
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
                    "退租申请"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
                    "已还车"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_REFUND,
                    "财务结算中"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "解除协议确认"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "收/退款"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));

    /**
     * 解除协议确认显示流程-未提车
     */
    @Deprecated
    public static final List<OrderTradeFlowBizDto> RENEGE_REFUND_TWO = Arrays.asList(
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
                    "退租申请"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "解除协议确认"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "收/退款"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));

    /**
     * 收/退款显示流程-提车
     */
    public static final List<OrderTradeFlowBizDto> RENEGE_UNPAID_ONE = Arrays.asList(
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
                    "退租申请"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
                    "已还车"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_REFUND, "财务结算中"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_UNPAID, "解除协议确认"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "收/退款"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));

    /**
     * 收/退款显示流程-未提车
     */
    public static final List<OrderTradeFlowBizDto> RENEGE_UNPAID_TWO = Arrays.asList(
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_UNPAID,
                    "退租申请"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "收/退款"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));

    /**
     * 退租已完成显示流程-提车
     */
    public static final List<OrderTradeFlowBizDto> RENEGE_FINISH_ONE = Arrays.asList(
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
                    "退租申请"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
                    "已还车"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_REFUND, "财务结算中"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_UNPAID, "解除协议确认"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_FINISH, "收/退款"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, OrderExclusivelStatusEnum.RENEGE_FINISH, "退租完成"));

    /**
     * 退租已完成显示流程-未提车
     */
    public static final List<OrderTradeFlowBizDto> RENEGE_FINISH_TWO = Arrays.asList(
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_UNPAID,
                    "退租申请"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_FINISH,
                    "收/退款"),
            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, OrderExclusivelStatusEnum.RENEGE_FINISH, "退租完成"));


//    /**
//     * 退租受理中显示流程-待提车
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_ACCEPTED_ONE = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "退租受理中"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "财务结算"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//    /**
//     * 退租受理中显示流程-用车中
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_ACCEPTED_TWO = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "待还车"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "财务结算"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//
//    /**
//     * 财务结算中显示流程-待提车
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_SETTLEMENT_ONE = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "财务结算"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//    /**
//     * 财务结算中显示流程-用车中-未提交银行账户信息
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_SETTLEMENT_TWO = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已还车"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "财务结算"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//
//    /**
//     * 财务结算中显示流程-用车中-已提交银行账户信息
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_SETTLEMENT_THREE = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已还车"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_PAYEE,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "财务结算"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//
//    /**
//     * 退租待缴费显示流程-待提车
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_UNPAID_ONE = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_UNPAID,
//                    "我司发起收款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "待缴费"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//    /**
//     * 退租待缴费显示流程-用车中
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_UNPAID_TWO = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已还车"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_PAYEE,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_UNPAID,
//                    "我司发起收款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "待缴费"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//
//    /**
//     * 退租退款中显示流程-待提车
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_REFUND_ONE = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_REFUND,
//                    "我司发起付款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "退租退款中"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//
//    /**
//     * 退租退款中显示流程-用车中
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_REFUND_TWO = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已还车"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_PAYEE,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_REFUND,
//                    "我司发起付款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "退租退款中"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.WAIT, "退租完成"));
//
//    /**
//     * 退租已完成显示流程-待提车-我司应收
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_FINISH_UNPAID_ONE = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_UNPAID,
//                    "我司发起付款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_FINISH,
//                    "用户已支付费用"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "退租已完成"));
//    /**
//     * 退租已完成显示流程-待提车-我司应付
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_FINISH_REFUND_ONE = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_REFUND,
//                    "我司发起退款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_FINISH,
//                    "已完成退款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "退租已完成"));
//    /**
//     * 退租已完成显示流程-用车中-我司应收
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_FINISH_UNPAID_TWO = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已还车"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_PAYEE,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_UNPAID,
//                    "我司发起付款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_FINISH,
//                    "用户已支付费用"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "退租已完成"));
//    /**
//     * 退租已完成显示流程-用车中-我司应付
//     */
//    public static final List<OrderTradeFlowBizDto> RENEGE_FINISH_REFUND_TWO = Arrays.asList(
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_ACCEPTED,
//                    "同意退租"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_SETTLEMENT,
//                    "已还车"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_PAYEE,
//                    "已提交银行账户信息"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_REFUND,
//                    "我司发起退款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.COMPLETED, OrderExclusivelStatusEnum.RENEGE_FINISH,
//                    "已完成退款"),
//            new OrderTradeFlowBizDto(OrderTradeFlowStatusEnum.CURRENT, "退租已完成"));

}
